package top.pmwly.oauth2_jwt.config;

import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import org.springframework.security.oauth2.provider.token.TokenEnhancer;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Herther
 * @version 1.0.0
 * @ClassName JwtEnhance.java
 * @Description jwt内容增强器
 * @createTime 2021年08月23日 15:28:00
 */
public class JwtEnhancer implements TokenEnhancer {

    /**
     * 添加内容
     * @param accessToken
     * @param authentication
     * @return
     */
    @Override
    public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
        //定义map存储我们需要增加的信息
        Map<String,Object> map = new HashMap();
        map.put("hello", "I'm Herther");
        //将我们新增的内容信息放入到 accessToken ，accessToken是接口，所以我们必须使用他的实现类
        ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(map);
        return accessToken;
    }

}
